/**
 * 
 */
package datenbank;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

import domain.DomArtikelDaten;

/**
 * 
 * 
 * @date 22.03.2012
 * @author rs
 * @version
 * 
 */
public class ArtNrSave {

	private Initialisierung initialisierung;

	private File pfadArtikel;

	private BufferedWriter bf;
	private BufferedReader br;

	private ArrayList<String> kopf;

	/**
	 * Speichert die Artikelnummern in das Datenbank File
	 * 
	 * @param artNr
	 * @throws IOException
	 */
	public ArtNrSave(Initialisierung initialisierung) throws IOException {
		this.initialisierung = initialisierung;

		pfadArtikel = new File(initialisierung.getPfadArtikel());

		kopf = new ArrayList<String>();

		kopfAusl();

		saveArtikel();
	}

	/**
	 * Kopf des files auslesen
	 * 
	 * @throws IOException
	 */
	private void kopfAusl() throws IOException {
		
		br = new BufferedReader(new FileReader(pfadArtikel));
		
		String line;

		for (; (line = br.readLine()) != null;) {
			StringBuilder sb = new StringBuilder(line);

			if (sb.charAt(0) == ';') {
				kopf.add(line);
			} else {
				// Schleife abbrechen wenn der Kopf eingelesen ist
				break;
			}
		}
		
		// File schliessen
		br.close();

	}

	/**
	 * Artikel speichern
	 * @throws IOException 
	 */
	private void saveArtikel() throws IOException {
		bf = new BufferedWriter(new FileWriter(pfadArtikel));
		
		// Kopf einfuegen
		for (String s : kopf) {
			bf.write(s);
			bf.newLine();
		}
		
		for (DomArtikelDaten domArtikelDaten : initialisierung.getArtikel()) {
			bf.write(domArtikelDaten.getSaveArtikel());
			bf.newLine();
			
			System.out.println("String gespeichert: " + domArtikelDaten.getSaveArtikel());
		}

		bf.write("EOF");
		bf.close();
	}

}
